package com.storage.system.mapper;

import com.storage.system.domain.StorageBrand;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 品牌 数据层
 *
 * @author storage
 * @date 2019-08-18
 */
public interface StorageBrandMapper {
    /**
     * 查询品牌信息
     *
     * @param id 品牌ID
     * @return 品牌信息
     */
    public StorageBrand selectStorageBrandById(Long id);

    /**
     * 查询品牌列表
     *
     * @param storageBrand 品牌信息
     * @return 品牌集合
     */
    public List<StorageBrand> selectStorageBrandList(StorageBrand storageBrand);

    /**
     * 新增品牌
     *
     * @param storageBrand 品牌信息
     * @return 结果
     */
    public int insertStorageBrand(StorageBrand storageBrand);

    /**
     * 修改品牌
     *
     * @param storageBrand 品牌信息
     * @return 结果
     */
    public int updateStorageBrand(StorageBrand storageBrand);

    /**
     * 删除品牌
     *
     * @param id 品牌ID
     * @return 结果
     */
    public int deleteStorageBrandById(Long id);

    /**
     * 批量删除品牌
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteStorageBrandByIds(String[] ids);

    /**
     * 根据品牌名称查询count
     *
     * @param brandName
     * @return
     */
    int selectBrandCountByName(@Param("brandName") String brandName, @Param("createUserId") Long createUserId, @Param("ownerType") Integer ownerType);

    /**
     * 根据品牌名称查询
     *
     * @param brandName
     * @return
     */
    StorageBrand selectBrandByName(@Param("brandName") String brandName, @Param("createUserId") Long createUserId, @Param("ownerType") Integer ownerType);

    /**
     * 查询分页数据
     *
     * @param storageBrand
     * @param start
     * @param pageSize
     * @return
     */
    List<StorageBrand> queryPageList(@Param("brand") StorageBrand storageBrand, @Param("start") Integer start, @Param("pageSize") Integer pageSize);

    /**
     * 查询分页count
     *
     * @param storageBrand
     * @return
     */
    Long queryPageCount(StorageBrand storageBrand);

    /**
     * 查询品牌
     *
     * @param createUserId
     * @param brands
     * @return
     */
    List<StorageBrand> selectStorageBrandByNames(@Param("createUserId") Long createUserId, @Param("brands") String[] brands);
}